Method and system for recommending products based on a ranking cocktail

ABSTRACT

Systems and methods for e-commerce personalization and merchandising are provided herein. In some instances, methods may include determining triggers for a consumer, where the triggers being associated with objective consumer preferences and subjective consumer preferences for the consumer. Also, the method includes selecting a ranking cocktail for the consumer that includes a plurality of attributes that each includes a weight. The method also includes utilizing the ranking cocktail to select recommended products from an inventory of products in a database of a merchant, and providing the recommended products for display to the consumer.

CROSS REFERENCES TO RELATED APPLICATIONS

This Non-Provisional U.S. patent application is a continuation of, and claims the priority benefit of, U.S. Nonprovisional patent application Ser. No. 13/891,029 filed on May 9, 2013 and titled “Method and System for Recommending Products Based on a Ranking Cocktail, which in turns claims the priority benefit of U.S. Provisional Patent Application No. 61/646,187, filed on May 11, 2012, titled “E-COMMERCE PERSONALIZATION AND MERCHANDISING.” The disclosure of the above applications are incorporated by reference herein in their entirety, including all references cited therein.

FIELD OF THE INVENTION

The present invention relates generally to electronic commerce (e.g., ecommerce) websites, and more specifically, but not by way of limitation, to e-commerce websites that leverage subjective and/or objective consumer preferences, such as brand preferences, web analytics, contextual/behavioral data, and so forth, of consumers to present products to the consumer that are highly relevant and targeted.

BACKGROUND

The quantity of products provided for sale in physical retail establishments is inherently limited by the physical space occupied by the retail establishment. Being unbound by such physical constraints, e-commerce websites may therefore offer an almost unlimited number of products for sale. Deleteriously, consumers may become frustrated with the limitless number of products with which they are presented. Often times, many of the products presented to the consumer are irrelevant to the wants, desires, and or preferences of the consumer.

Additionally, physical retail establishments may utilize merchandising techniques to ensure proper product placement of items within the retail environment. These merchandising activities can increase the likelihood that a consumer may purchase a product. E-commerce websites are currently limited in their merchandising capabilities because the amount of products and/or associated merchandising that can be presented to the consumer at one time is limited by the dimensions of the display device (e.g., computer screen) with which the consumer is interacting. Therefore, the space needs to be filled with appropriately targeted products to maximize product conversions.

SUMMARY

According to some embodiments, the present disclosure is directed to a method for providing recommended products to a consumer using a product recommendation and personalization system. The method may include: (a) determining triggers for a consumer, the triggers being associated with objective consumer preferences and subjective consumer preferences for the consumer; (b) selecting a ranking cocktail for the consumer, the ranking cocktail comprising a plurality of attributes that each comprise a weight, the ranking cocktail being selected based upon the triggers for the consumer; (c) utilizing the ranking cocktail to select recommended products from an inventory of products in a database of a merchant; and (d) providing the recommended products for display to the consumer.

According to some embodiments, the present disclosure is directed to a method for generating a ranking cocktail for a personalization system that includes: (a) receiving selections of a plurality of attributes from a consumer; (b) receiving a weight for at least one of the plurality of attributes, wherein some of the plurality of attributes are non-weighted; (c) automatically distributing unallocated weight to the non-weighted attributes such that a total weight of the ranking cocktail equals 100%; and (c) storing the ranking cocktail in a database.

According to some embodiments, the present disclosure is directed to a product recommendation system that comprises: (a) a processor; and (b) logic encoded in one or more tangible media for execution by the processor and when executed operable to perform operations comprising: (i) determining triggers for a consumer, the triggers being associated with objective consumer preferences and subjective consumer preferences for the consumer; (ii) selecting a ranking cocktail for the consumer, the ranking cocktail comprising a plurality of attributes that each comprise a weight, the ranking cocktail being selected based upon the triggers for the consumer; (iii) utilizing the ranking cocktail to select recommended products from an inventory of products in a database of a merchant; and (iv) providing the recommended products for display to the consumer via an e-commerce website.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is an exemplary computing architecture that may be utilized to practice aspects of the present technology.

FIG. 2A is a graphical user interface illustrating the weighting of a ranking cocktail;

FIG. 2B is a graphical user interface illustrating the normalization of the ranking cocktail of FIG. 2A;

FIG. 3A is a graphical user interface illustrating the establishment of a ranking cocktail with non-weighted attributes;

FIG. 3B is a graphical user interface illustrating the distribution of unallocated weight to non-weighted and previously weighted attributes;

FIG. 4 is a flowchart of an exemplary method for providing recommended products to a consumer using a product recommendation and personalization system;

FIG. 5 is a flowchart of an exemplary method for generating a ranking cocktail for a product recommendation system; and

FIG. 6 is a block diagram of an exemplary computing system for implementing embodiments of the present technology.

DETAILED DESCRIPTION OF EXEMPLARY EMBODIMENTS

While this technology is susceptible of embodiment in many different forms, there is shown in the drawings and will herein be described in detail several specific embodiments with the understanding that the present disclosure is to be considered as an exemplification of the principles of the technology and is not intended to limit the technology to the embodiments illustrated.

The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. As used herein, the singular forms “a”, “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises” and/or “comprising,” when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof.

It will be understood that like or analogous elements and/or components, referred to herein, may be identified throughout the drawings with like reference characters. It will be further understood that several of the figures are merely schematic representations of the present technology. As such, some of the components may have been distorted from their actual scale for pictorial clarity.

Generally speaking, the present technology may be utilized to present highly relevant products to consumers via an e-commerce website. The presentation of relevant products to the consumer may also be referred to as a campaign. Using the present technology, marketers and merchants may display the highly relevant item(s), to appropriate consumers, at the right time, in order to maximize product sales or customer conversions. These and other advantages of the present technology will be discussed in greater detail below with reference to the collective figures (e.g., FIGS. 1-6).

FIG. 1 is a block diagram of an exemplary architecture 100, constructed in accordance with various embodiments of the present technology. The architecture 100 may include a plurality of end user client devices such as client device 105. It will be understood that the client device 105 may include computing systems such as the exemplary computing system 600 described in greater detail with regards to FIG. 6. The client device 105 may communicatively couple and interact with a personalization and recommendation system, hereinafter “system 110” via a network 115 that may include the Internet, an Intranet network such as a L.A.N. (Local Area Network) or W.A.N. (Wide Area Network), a V.P.N. (Virtual Private Network)—just to name a few.

In some embodiments, the system 110 may be configured as a cloud-based computing environment. In general, a cloud-based computing environment is a resource that typically combines the computational power of a large grouping of processors (such as within web servers 120 a-n) and/or that combines the storage capacity of a large grouping of computer memories or storage devices. Systems that provide cloud-based resources may be utilized exclusively by their owners or such systems may be accessible to outside users who deploy applications within the computing infrastructure to obtain the benefit of large computational or storage resources.

The cloud may be formed, for example, by a network of web servers such as web servers 120 a-n, with each server (or at least a plurality thereof) providing processor and/or storage resources. These servers may manage workloads provided by multiple users (e.g., cloud resource customers or other users). Typically, each user places workload demands upon the cloud that vary in real-time, sometimes dramatically. The nature and extent of these variations typically depends on the type of business associated with the user.

The system 110 may leverage personalized information for consumers to present highly relevant products and/or conduct search queries of inventories associated with e-commerce websites, for products to produce highly relevant search results. In general, personalized information may comprise objective data gathered about a consumer such as height, sex, race, nationality, age, or other demographic/psychographic/analytical information. Personalization information determined for a consumer may be stored in consumer records via one or more data stores such as a data store 125. Additional types of objective data may comprise behavioral/web analytic information such as websites visited, click through data, average time spent on a webpage, search histories, shopping cart items, past purchasing data, and so forth. In some instances, objective data may also comprise other types of user-generated content that may be analyzed or evaluated for preference data such as buying preferences, patterns, and so forth.

Personalization may also comprise subjective data about the consumer such as favorite brand, favorite designer, favorite color, and so forth. These types of subjective data may also be inferred from various types of objective data about the consumer. For example, the system may infer the favorite designer for the consumer by evaluating past purchasing history, or a demographic bracket into which the age of the consumer is positioned. In other instances, consumers may provide their subjective preferences to a retailer or marketer by way of a survey or other data acquisition method that would be known to one of ordinary skill in the art.

In some embodiments, contextual and cultural preferences may also be considered by the system 110. For example, the system 110 may present a UK based consumer with different product selections than a US based consumer, even in light of a same or similar query input by both consumers.

The system 110 may provide the consumer with recommendations using different relational similarities. For example, the present technology may present the end user with highly relevant alternate items that are related to an item that the consumer has selected on the website. In other instances, the present technology may match consumers and products using any of the aforementioned preferences. Additionally, the system 110 may suggest or recommend products to consumers based upon selections made by other consumers with substantially similar preferences.

The system 110 may also contextually target products to a consumer based upon triggers, which are associated with rules. The application of these rules may affect the results of a search query or product listing requested by the consumer. Additionally, consumer segmentation may also be considered relative to the rules applied. In some instances, new rules, new consumer segmentation, and/or rule modification may occur based upon analysis of empirical consumer conversion data (e.g., how many consumers actually purchased an item that was directly targeted to the consumers).

Generally speaking, the system 110 may utilize a plurality of various types of triggers to effectuate the personalized delivery of data to the consumer. Triggers may be understood to comprise information or knowledge of any kind relative to a consumer, such as age, sex, language, race, and so forth. This information may be actionable and/or relatable to various types of rules that are utilized to influence products that are provided to the consumer (e.g., personalization) by the system 110. In some instances, marketers may establish rules that are based upon definable criteria such as customer segmentation and associated characteristics or attributes. Customers may be segmented or grouped together based upon any variety or permutation of attributes. For example, a consumer segment may comprise age ranges. In other examples, a consumer segment may include consumers fall within an age range and eat at a restaurant at least twice per week. As would be apparent to one of ordinary skill in the art, consumer segments may be constructed using an almost limitless number of facets. Additionally, consumer segmentation may be specifically tailored to the products and/or services provided by a merchant. Thus, a merchant in a niche market may utilize very specific customer segments.

When a consumer searches for, or browses an e-commerce website that employs the personalization/behavioral targeting technology provided herein, the system 110 may be executed to evaluate the preference information for the consumer. Again, preference information may be determined from objective and/or subjective knowledge of the consumer such as via web analytics, user profiles, questionnaires, contextual/behavioral/cultural data, user generated content, and many others. In other instances, consumer preferences may be pushed or uploaded to the system 110 from other marketers and/or merchants with which the consumer has interacted. When the consumer searches for a product, the system 110 may determine that certain preferences of the consumer match triggers that are associated with rules for the website. Again, these rules and triggers may revolve conceptually around established consumer segments that are relevant to the marketer and/or merchant. If the preferences of the consumer activate the triggers associated with at least one rule, the system 110 may apply the rule to the search results, which affect the display of the search results to provide the consumer with highly relevant search results.

By way of non-limiting example, assume that a consumer is a male (trigger one) between the ages of 18 and 25 (trigger two), and the system 110 determines that the consumer always purchases products that are on sale (trigger three). Moreover, a rule for this e-commerce site specifies that if these three triggers are met, the system 110 should personalize the search results to highly ranked items that are currently on sale. The ranking may also employ other additional known preferences for the consumer that may or may not implicate other triggers and/or rules.

According to some embodiments, the system 110 may be configured to provide raw search results in the event that personalization of a search result might cause latency that meets or exceeds a specified period of time, such as a latency threshold. For example, if the system 110 determines that it will take in excess of seven seconds to return the personalized and/or targeted search results, the system 110 may provide raw search results by default. Additionally, the system 110 may provide the personalized and/or targeted search results in a ribbon, pane, frame, and/or other section of the website when the personalized search results have finally been obtained. The personalized search results may be displayed around or proximate the raw search results.

In accordance with the present disclosure, the system 110 may provide products which are personalized and targeted without deleteriously affecting the performance (at least latency) of the e-commerce website.

Again, the system 110 may leverage triggers, customizable actions, attributes, and/or business rules within campaigns. Exemplary triggers may execute actions/campaigns such as “Almost Sold Out” and “You might also like” but the end result of these campaigns is the provision of highly relevant products to the consumer. Campaigns can be archived, deleted, validated, and so forth. Additionally, campaigns may be managed using an intuitive dashboard or graphical user interfaces.

The present technology may also enable images with hotspots that are coupled with triggers. According to some embodiments, the hotspots are not integral to the image file itself but may comprise templates that are associated with the image. Clicking these hotspots may activate a personalized marketing campaign, which may be tailored to the preferences of a consumer that clicked on the hotspot. As with campaigns, these hotspot-enhanced images may be archived, content (e.g. links, content, etc.) validated, and/or managed.

The triggers associated with hotspot enabled images or campaigns in general may be different from the triggers associated with the rule-based query process described above. That is, a trigger may be associated with an action or a predefined set of circumstances relative to a product. For example, a campaign such as “Almost Sold Out” may be displayed upon a trigger such as merchant having less than a specified amount of products left for sale. Thus, when a consumer views a product that is short on supply, the trigger is activated and an “Almost Sold Out” message may be displayed to the consumer.

As mentioned previously, the system 110 may match products to consumers via personalization techniques. For example, the system 110 may understand that a customer prefers “Silver®” brand jeans. Therefore, when a trigger is executed (such as clicking within hotspot enabled image file) a personalized search may be performed relative to a specified subject matter (e.g., jeans) and jeans manufactured by the consumer's favorite jeans manufacturer are ranked prominently to ensure that they are top of mind for the consumer. Likewise, consumers may rank brands or specify that they do not like certain brands. The system 110 may also dynamically match consumer selected products with additional complementary products to generate ensemble options that are appropriate for the personalized and selected product. For example, if a consumer selects a pair of jeans that correspond to the preferences of the consumer, the system may provide ensemble suggestions such as shirts, shoes, accessories, etc. that are complementary to the jeans. These suggestions may be rule-based (based upon common fashion guidelines and/or influenced by the subjective preferences of the consumer). In some instances the selected ensembles may be subject to crowdsourced reviews/opinions. The system 110 may also infer preferences of consumers based upon behavior and/or objective data such as demographics. For example, the system may infer that consumers under the age of 21 may prefer a certain brand of jeans.

Additionally, the system 110 may employ “e-merchandising” behaviors that affect product placement in online settings to encourage purchasing activities by consumers. The system 110 may employ “ranking cocktails” to encourage buying behavior. A ranking cocktail may include permutations of weighting of attributes such as inventory, margin, freshness, popularity, and so forth. A ranking cocktail may include permutations of any of these attributes, was well as a weight for each attribute. Selections of attributes and weights allow for marketers to execute various types of merchandising goals such as seasonal rankings, category specific rankings, and/or user-specific rankings. The present technology may also employ normalization, creation, editing, locking, of ranking cocktails.

Exemplary ranking cocktails may include seasonal cocktail rankings. One of ordinary skill in the art will appreciate that the focus of a merchant changes during the year: from the new spring collection, to Summer Sales, and Christmas. Using ranking cocktails seasonality can be reflected in product merchandising by selectively adjusting how items from query results are ranked. An exemplary Spring collection ranking cocktail may specify (35% freshness+40% margin+10% bestseller+10% top rated+5% inventory) to ensure that inventory selections are tailored to induce conversions of the latest and greatest products by consumers.

In another example, a ranking cocktail for Summer sales may specify (70% inventory+30% margin) to ensure that the greatest volume of products can be sold. Additionally, a Christmas sales ranking cocktail of (50% margin+30% popularity+20% inventory) may ensure a healthy profit relative to the end of year business.

According to some embodiments, ranking cocktails may comprise category-specific rankings, which may reflect that what matters to consumers may differ per category. Thus, the ranking cocktail that is selected may be based upon the determined preferences (e.g., subjective and objective data) of the consumer as has been described in greater detail above.

In electronics, for example, mainly freshness is important to consumers, whereas in fashion, popularity plays a big role. The system 110 may utilize different ranking cocktails for each of these situations. For example, an electronics ranking cocktail may specify (70% freshness+30% margin) to ensure the presentation of cutting edge products to the consumer. A fashion ranking cocktail may specify (50% popularity+50% margin) to ensure the presentation of really fashionable products to the consumer.

In other instances, ranking cocktails may comprise consumer-specific rankings, where different consumer segments prefer different products. For example, deal hunters, for instance, are mainly focused on cheap prices. In contrast, technophiles care about the latest gadgets and very little about cost. The present technology may utilize the following exemplary ranking cocktails, which have been tuned to consumer segments: Deal hunters: 70% price+30% margin ensures that the system 110 provides appropriately priced deals. Geeks: 70% freshness+30% margin ensures that the system 110 provides latest gadgets.

Other types of non-traditional sales characteristic may also be utilized, such as social recommendations, enterprise resource planning data, customer resource management data, and so forth. These types of data may be utilized in a consolidated item popularity ranking cocktail. For example, 30% Social Recommendations, 30% Web Analytics and 40% ERP.

In some embodiments, the system 110 may allow the user to invert the normalization of an existing ranking cocktail. By default, normalization scales values of attribute types used in a ranking cocktail to the interval [0.0, 1.0] such that, the higher the attribute value, the higher the normalized value. That is, the normalization is monotonically increasing with respect to the value the item has for that attribute while inverted normalization is monotonically decreasing. For illustration purpose, assume an existing Summer Sales ranking cocktail includes 30% inventory+70% margin. Using normalization inversion, the user may select to invert the values of the cocktail such that the Summer Sales ranking cocktail includes 70% inventory+30% margin. FIGS. 2A and 2B illustrate graphical user interfaces 200 and 205 that are generated by the system 110. UI 200 illustrates an existing Summer Sales ranking cocktail that includes 30% inventory+70% margin weightings. When the normalization invert button 210 of the UI 205 of FIG. 2B is selected, the system 110 inverts the weighting of the Summer Sales ranking cocktail such that it includes 70% inventory+30% margin weightings.

In some embodiments, the system 110 may be configured to automatically distribute weight to non-weighted attributes of a ranking cocktail. For example, when a marketer utilizes the system 110 to generate a ranking cocktail, the user may select various attributes available to the marketer. In some instances, the attributes are made available using a dropdown list within a graphical user interface, such as the UIs 300 and 305 of FIGS. 3A and 3B, respectively.

In general, the system 110 is configured to receive a weight for at least one of the plurality of attributes, wherein some of the plurality of attributes are non-weighted. The UI 300 of FIG. 3A includes an inventory attribute that is non-weighted, meaning that the weighting value is zero. Since the margin attribute has been weighted at 30%, 70% of the weighting available remains unallocated. The user selects the distribute icon 310 of FIG. 3A to cause the system 110 to automatically allocate unallocated weight to both the margin and inventor attributes.

In some embodiments, the system 110 may automatically distribute unallocated weight to only non-weighted attributes such that a total weight of the ranking cocktail equals 100%. For example, the system 110 may allocate the 70% unallocated weight only to non-weighted attributes, which in this instance includes only the inventory attribute. The system 110 may allow the user to “lock” an attribute to prevent additional allocations of weight to the locked attribute. FIGS. 3A and 3B both illustrate a lock check box with each attribute. Selection of this lock check box prevents changes to the weighting of the associated attribute.

In some instances, the system 110 may proportionally divide and distribute unallocated weight to each attribute, including any already-weighted attributes. If the user desires, the automatically distributed ranking cocktail may be stored in a database, such as the data store 125.

FIG. 4 is a flowchart of an exemplary method for providing recommended products to a consumer using a product recommendation and personalization system. The method may include determining 405 triggers for a consumer. As mentioned above, the triggers may be associated with objective consumer preferences and subjective consumer preferences for the consumer. Again, these preferences may be gather from a wide variety of information sources, including web analytic information gathered from the consumer as they utilize the website.

Next, the method may include selecting 410 a ranking cocktail for the consumer. The ranking cocktail includes a plurality of attributes that each comprise a weight, the ranking cocktail being selected based upon the triggers for the consumer. Using the examples provided previously, the system 110 may select, for example, Summer Sales, Deal Hunter, or any of the other ranking cocktails.

Next, the method includes applying 415 the ranking cocktail to select recommended products from an inventory of products in a database of a merchant. In some embodiments, applying may include calculating a ranking cocktail value for each of a plurality of products in the inventory of products, as well as ranking the plurality of products according to their ranking cocktail value. The process of applying may also include selecting at least a portion of highest ranked products according to the ranking. These selected products are thus personalized and targeted to the consumer.

Finally, the method also includes providing 420 the recommended products for display to the consumer. The step of providing may include displaying or presenting the selected products in a panel, ribbon, frame, list, or other representation in a manner that is consistent with the ranking cocktail. For example, if the ranking cocktail is “You may also like,” the representation may include a frame with the header “You may also like.”

FIG. 5 is a flowchart of an exemplary method for generating a ranking cocktail for a personalization system. The method may include receiving 505 selections of a plurality of attributes from a consumer. FIGS. 3A and 3B illustrate the selection of attributes for a ranking cocktail. Attributes may be selected from, for example, a dropdown list presented by the system 110 via a graphical user interface. In some embodiments, the method includes receiving 510 a weight for at least one of the plurality of attributes. It will be understood that some of the plurality of attributes are non-weighted.

The method then includes automatically distributing 515 unallocated weight to the non-weighted attributes such that a total weight of the ranking cocktail equals 100%. The system 110 may execute this step in response to a selection to distribute weights, received from an end user. Next, the method includes storing 520 the ranking cocktail in a database.

FIG. 6 illustrates an exemplary computing system 600 (also referenced as system 600) that may be used to implement an embodiment of the present technology. The system 600 of FIG. 6 may be implemented in the contexts of the likes of computing systems, networks, servers, or combinations thereof. The computing system 600 of FIG. 6 includes a processor 610 and main memory 620. Main memory 620 stores, in part, instructions and data for execution by processor 610. Main memory 620 may store the executable code when in operation. The system 600 of FIG. 6 further includes a mass storage device 630, portable storage medium drive(s) 640, output devices 650, input devices 660, a graphics display 670, and peripheral device(s) 680.

The components shown in FIG. 6 are depicted as being connected via a single bus 690. The components may be connected through one or more data transport means. Processor 610 and main memory 620 may be connected via a local microprocessor bus, and the mass storage device 630, peripheral device(s) 680, portable storage medium drive(s) 640, and graphics display 670 may be connected via one or more input/output (I/O) buses.

Mass storage device 630, which may be implemented with a magnetic disk drive or an optical disk drive, is a non-volatile storage device for storing data and instructions for use by processor 610. Mass storage device 630 may store the system software for implementing embodiments of the present invention for purposes of loading that software into main memory 620.

Portable storage medium drive(s) 640 operates in conjunction with a portable non-volatile storage medium, such as a floppy disk, compact disk, digital video disc, or USB storage device, to input and output data and code to and from the computing system 600 of FIG. 6. The system software for implementing embodiments of the present invention may be stored on such a portable medium and input to the computing system 600 via the portable storage medium drive(s) 640.

Input devices 660 provide a portion of a user interface. Input devices 660 may include an alpha-numeric keypad, such as a keyboard, for inputting alpha-numeric and other information, or a pointing device, such as a mouse, a trackball, stylus, or cursor direction keys. Additionally, the system 600 as shown in FIG. 6 includes output devices 650. Suitable output devices include speakers, printers, network interfaces, and monitors.

Graphics display 670 may include a liquid crystal display (LCD) or other suitable display device. Graphics display 670 receives textual and graphical information, and processes the information for output to the display device.

Peripheral device(s) 680 may include any type of computer support device to add additional functionality to the computing system. Peripheral device(s) 680 may include a modem or a router.

The components provided in the computing system 600 of FIG. 6 are those typically found in computing systems that may be suitable for use with embodiments of the present invention and are intended to represent a broad category of such computer components that are well known in the art. Thus, the computing system 600 of FIG. 6 may be a personal computer, hand held computing system, telephone, mobile computing system, workstation, server, minicomputer, mainframe computer, or any other computing system. The computer may also include different bus configurations, networked platforms, multi-processor platforms, etc. Various operating systems may be used including Unix, Linux, Windows, Macintosh OS, Palm OS, Android, iPhone OS and other suitable operating systems.

Some of the above-described functions may be composed of instructions that are stored on storage media (e.g., computer-readable medium). The instructions may be retrieved and executed by the processor. Some examples of storage media are memory devices, tapes, disks, and the like. The instructions are operational when executed by the processor to direct the processor to operate in accord with the technology. Those skilled in the art are familiar with instructions, processor(s), and storage media.

It is noteworthy that any hardware platform suitable for performing the processing described herein is suitable for use with the technology. The terms “computer-readable storage medium” and “computer-readable storage media” as used herein refer to any medium or media that participate in providing instructions to a CPU for execution. Such media can take many forms, including, but not limited to, non-volatile media, volatile media and transmission media. Non-volatile media include, for example, optical or magnetic disks, such as a fixed disk. Volatile media include dynamic memory, such as system RAM. Transmission media include coaxial cables, copper wire and fiber optics, among others, including the wires that comprise one embodiment of a bus. Transmission media can also take the form of acoustic or light waves, such as those generated during radio frequency (RF) and infrared (IR) data communications. Common forms of computer-readable media include, for example, a floppy disk, a flexible disk, a hard disk, magnetic tape, any other magnetic medium, a CD-ROM disk, digital video disk (DVD), any other optical medium, any other physical medium with patterns of marks or holes, a RAM, a PROM, an EPROM, an EEPROM, a FLASHEPROM, any other memory chip or data exchange adapter, a carrier wave, or any other medium from which a computer can read.

Various forms of computer-readable media may be involved in carrying one or more sequences of one or more instructions to a CPU for execution. A bus carries the data to system RAM, from which a CPU retrieves and executes the instructions. The instructions received by system RAM can optionally be stored on a fixed disk either before or after execution by a CPU.

Computer program code for carrying out operations for aspects of the present technology may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, Smalltalk, C++ or the like and conventional procedural programming languages, such as the “C” programming language or similar programming languages. The program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider).

The corresponding structures, materials, acts, and equivalents of all means or step plus function elements in the claims below are intended to include any structure, material, or act for performing the function in combination with other claimed elements as specifically claimed. The description of the present technology has been presented for purposes of illustration and description, but is not intended to be exhaustive or limited to the invention in the form disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the invention. Exemplary embodiments were chosen and described in order to best explain the principles of the present technology and its practical application, and to enable others of ordinary skill in the art to understand the invention for various embodiments with various modifications as are suited to the particular use contemplated.

Aspects of the present technology are described above with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.

These computer program instructions may also be stored in a computer readable medium that can direct a computer, other programmable data processing apparatus, or other devices to function in a particular manner, such that the instructions stored in the computer readable medium produce an article of manufacture including instructions which implement the function/act specified in the flowchart and/or block diagram block or blocks.

The computer program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other devices to cause a series of operational steps to be performed on the computer, other programmable apparatus or other devices to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide processes for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.

The flowchart and block diagrams in the Figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present technology. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.

While various embodiments have been described above, it should be understood that they have been presented by way of example only, and not limitation. The descriptions are not intended to limit the scope of the technology to the particular forms set forth herein. Thus, the breadth and scope of a preferred embodiment should not be limited by any of the above-described exemplary embodiments. It should be understood that the above description is illustrative and not restrictive. To the contrary, the present descriptions are intended to cover such alternatives, modifications, and equivalents as may be included within the spirit and scope of the technology as defined by the appended claims and otherwise appreciated by one of ordinary skill in the art. The scope of the technology should, therefore, be determined not with reference to the above description, but instead should be determined with reference to the appended claims along with their full scope of equivalents. 

What is claimed is:
 1. A method for generating a ranking cocktail for a product recommendation system, the method comprising: receiving selections of a plurality of attributes from a consumer; calculating a weight for at least one of the plurality of attributes, wherein some of the plurality of attributes are non-weighted, the weighting based on the selections; determining, by a computing device, that applying the ranking cocktail to a query to obtain recommended products would cause a latency that meets or exceeds a specified latency threshold; based on the determination that applying the ranking cocktail to the query to obtain recommended products would cause a latency that meets or exceeds a specified latency threshold, returning, by the computing device, raw product results in response to the query; automatically distributing unallocated weight to the non-weighted attributes such that a total weight of the ranking cocktail equals 100%; and storing the ranking cocktail in a database.
 2. The method according to claim 1, further comprising selecting recommended products from a database using the ranking cocktail, the ranking cocktail allowing for the recommended products to be selected based on preferences of the consumer, the preferences comprising both objective and subjective preferences.
 3. The method according to claim 1, further comprising normalizing the plurality of attributes to scale the weight of each of the plurality attributes in such a way that higher weighted attributes have higher weighted normalized values.
 4. The method according to claim 3, wherein normalizing comprises any of monotonically increasing and monotonically decreasing the weight of each of the plurality attributes.
 5. The method according to claim 2, further comprising: presenting the recommended products for display on a website that have been selected using the ranking cocktail; receiving crowdsource feedback on the recommended products; and adjusting the weighting of at least one attribute of the ranking cocktail in response to the crowdsource feedback to alter the selection of recommended products from an inventory of products.
 6. The method according to claim 1, further comprising: selecting, by the computing device, recommended products from an inventory of products in a database of a merchant using the ranking cocktail.
 7. The method according to claim 1, further comprising providing, by the computing device, the recommended products for display to the consumer when the latency does not meet or exceed the specified latency threshold after the raw product results are returned.
 8. The method according to claim 1, wherein the ranking cocktail comprises any of a seasonal ranking cocktail, a category-specific ranking cocktail, a consumer-specific ranking cocktail, a deal hunter ranking cocktail, and a geek ranking cocktail.
 9. The method according to claim 1, wherein the ranking cocktail comprises a social recommendation ranking cocktail that includes a social recommendation attribute, a web analytics attribute, and an enterprise resource planning (ERP) attribute.
 10. A method for generating a ranking cocktail for a product recommendation system, the method comprising: determining objective and subjective preferences of a consumer; generating the ranking cocktail by: calculating a weight for a portion of a plurality of attributes, wherein the attributes are based on the objective and subjective preferences of the consumer, wherein each weight is normalized; and applying the ranking cocktail to select recommended products to display to the consumer; determining, by a computing device, that applying the ranking cocktail to a query to obtain recommended products would cause a latency that meets or exceeds a specified latency threshold; based on the determination that applying the ranking cocktail to the query to obtain recommended products would cause a latency that meets or exceeds a specified latency threshold, returning, by the computing device, raw product results in response to the query; and automatically distributing unallocated weight to non-weighted attributes such that a total weight of the ranking cocktail equals 100%.
 11. The method according to claim 10, further comprising inverting a normalization of the ranking cocktail.
 12. The method according to claim 11, wherein the normalization is monotonically increasing with respect to a value a recommended product has for that attribute while inverted normalization is monotonically decreasing.
 13. The method according to claim 10, further comprising proportionally dividing and distributing the unallocated weight to each attribute.
 14. A method for generating a ranking cocktail for a product recommendation system, the method comprising: determining objective and subjective preferences of a consumer; segmenting the consumer according to their objective and subjective preferences; selecting the ranking cocktail for a segment to which the consumer belongs, wherein the ranking cocktail comprises weightings for a portion of a plurality of attributes, wherein the attributes are based on the objective and subjective preferences of the consumer and based on the segment of the consumer; determining that one or more triggers have been met based on actions performed by the consumer; applying the ranking cocktail to select recommended products to display to the consumer; determining, by a computing device, that applying the ranking cocktail to a query to obtain recommended products would cause a latency that meets or exceeds a specified latency threshold; based on the determination that applying the ranking cocktail to the query to obtain recommended products would cause a latency that meets or exceeds a specified latency threshold, returning, by the computing device, raw product results in response to the query; and selecting one or more complementary products based on the recommended products selected for the consumer.
 15. The method according to claim 14, further comprising receiving crowdsourced feedback on the recommended products, the one or more complementary products and combinations thereof.
 16. The method according to claim 14, wherein the objective preferences comprise behaviors selected from any of websites visited, click through data, average time spent on a webpage, search histories, shopping cart items, past purchasing data, buying preferences, buying patterns, and any combinations thereof.
 17. The method according to claim 14, wherein the selection of the recommended products is further based on upon product selections made by other consumers with substantially similar preferences to that of the consumer.
 18. The method according to claim 14, wherein the objective and subjective preferences comprise demographic information of the consumer, psychographic information of the consumer, as well as subjective preferences which comprise favorite brand of the consumer, favorite designer of the consumer, favorite color of the consumer, and any combinations thereof. 